This project contains all the code neccessary to create the A4U_Vocalizer.nvda-addon
This project consists out of:
To build the addon we need to first ensure we have the most up-to-date dlls. These can be retrieved from the A4U_Vocalizer's Vocalizer_DLL project. Place the dlls into the /addon/lib folder.
You are now able to build the project with the latest dlls. To build the project do the following:
buildVars.py and addon\manifest.ini as necessary.scons command from the Source folder contents in the terminal to generate the addon.scons pot as it doesn't seem to 100% reliably update with scons alone.If you intend to develop I highly recommend making use of the junction function: mklink /J "A4U_Vocalizer" "Path_to_addon_folder"
This would mean that you no longer need to build the project and reinstall it. Instead only restarting will be necessary
The core purpose of this addon is to receive speechcommands and pass it onto the vocalizer dll with the desired attributes (volume, pitch and speed). The synth driver handler from NVDA calls the speak, stop, set_attribute, etc. These functions then process the information as necessary and passes it onto the Vocalizer's interface the synthdriver/vocalizer.py.
The vocalizer interface (synthdriver/vocalizer.py) handles the loading, initializing and all the function calls to the vocalizer dll(lib/vocalizer_handler.py). The vocalizer interface doesn't internally know what the functions it's calling do and only handles the processing of the information into it's desired final form. It then calls the necessary Vocalizer dll functions from the vocalizer handler. The vocalizer interface exists to minimize the amount of code being executed in the synth driver and the vocalizer handler as well as being able to access the vocalizer handler before the synth driver has fully initialized.
The vocalizer handler contains all the functions calls to the vocalizer dll including any necessary logic to ensure it's being passed over as intended. It loads in all the functions, initializes the dll and includes error handling.
How the functions are called from start to finish.
Note that the release build and debug build have different dlls that are required. If you copy all the dlls from the debug version to release or vice versa it might not build.